{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Loading Annotations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(\"annotations\\instances_train2017.json\") as jsonfile:\n",
    "    data = json.load(jsonfile)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Finding Images of People\n",
    "\n",
    "Here, we are searching for all the annotations that are about a person and adding them to a list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "262465\n"
     ]
    }
   ],
   "source": [
    "personlist = []\n",
    "for anno in data['annotations']:\n",
    "    if (anno['category_id'] == 1):\n",
    "        personlist.append(anno)\n",
    "print(len(personlist))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we create a dictionary with image id as the key and the total area in pixels as the value. We use this later."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "118287\n"
     ]
    }
   ],
   "source": [
    "imagesizemap = {}\n",
    "for img in data['images']:\n",
    "    area = img['width']*img['height']\n",
    "    imagesizemap[img['id']] = area\n",
    "print(len(imagesizemap))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we collect the IDs of the Images that we want to use as well as the IDs of the annotations that we want to use."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "goodidslist = set()\n",
    "annlist=[]\n",
    "for anno in personlist:\n",
    "    if (anno['iscrowd']==1):\n",
    "        continue\n",
    "    w = anno['bbox'][2]\n",
    "    h = anno['bbox'][3]\n",
    "    area = w*h\n",
    "    ratio = area/imagesizemap[anno['image_id']]*100\n",
    "    if (ratio > 35 and ratio < 80):\n",
    "        size = len(goodidslist)\n",
    "        goodidslist.add(anno['image_id'])\n",
    "        if (size != len(goodidslist)):\n",
    "            annlist.append(anno['id'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12827\n",
      "12827\n"
     ]
    }
   ],
   "source": [
    "print(len(goodidslist))\n",
    "print(len(annlist))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally we save the IDs to their respective files."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(\"imglist.txt\", \"w\") as file:\n",
    "    for i in goodidslist:\n",
    "        file.write(str(i))\n",
    "        file.write('\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(\"annlist.txt\",\"w\") as file:\n",
    "    for i in annlist:\n",
    "        file.write(str(i))\n",
    "        file.write('\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Creating training data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import print_function\n",
    "%matplotlib inline\n",
    "from pycocotools.coco import COCO\n",
    "import os, sys, zipfile\n",
    "import urllib.request\n",
    "import shutil\n",
    "import numpy as np\n",
    "import skimage.io as io\n",
    "import matplotlib.pyplot as plt\n",
    "import pylab\n",
    "pylab.rcParams['figure.figsize'] = (8.0, 10.0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we initialize the COCO dataset API."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading annotations into memory...\n",
      "Done (t=37.40s)\n",
      "creating index...\n",
      "index created!\n"
     ]
    }
   ],
   "source": [
    "coco = COCO(\"annotations\\instances_train2017.json\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we read in the annotation IDs from the previously prepared file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12827\n"
     ]
    }
   ],
   "source": [
    "annlist = []\n",
    "with open(\"annlist.txt\", 'r') as anns:\n",
    "    temp = anns.readlines()\n",
    "    for i in temp:\n",
    "        annlist.append(int(i))\n",
    "print(len(annlist))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we load in the full annotations from the list of IDs. We then convert the annotations to masks with the COCO dataset API."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12827\n"
     ]
    }
   ],
   "source": [
    "anns = coco.loadAnns(annlist)\n",
    "annos = []\n",
    "for anno in anns:\n",
    "    annos.append(coco.annToMask(anno))\n",
    "print(len(annos))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we get a list of the images that correspond to each of our annotations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12827\n"
     ]
    }
   ],
   "source": [
    "imglist = []\n",
    "for anno in anns:\n",
    "    imglist.append(anno['image_id'])\n",
    "print(len(imglist))\n",
    "imgs = coco.loadImgs(imglist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When we inspect the data, we should see an image and its corresponding mask:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "I = io.imread('images/%s'%(imgs[9710]['file_name']))\n",
    "plt.axis('off')\n",
    "plt.imshow(I)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJkAAADnCAYAAAANdPQLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAE/0lEQVR4nO3d0W3bWBCF4XGQKlyFm1i4gq0yFRhpwlW4jFVe1oARWLIk89w598z/PSYvJPh7hqTk5OF0OhWg9KP7AJCPyCBHZJAjMsgRGeR+XvrLf378y6MnrvL7v18P5/6OSQY5IoMckUGOyCBHZJAjMsgRGeSIDHJEBjkigxyRQY7IIEdkkCMyyBEZ5IgMckQGOSKDHJFBjsggR2SQIzLIXfyVOFzv5e310z9/fnxafCR+iEzsXHyXpIXJujzAPSFNQmSQIzLIEZmhtPVLZN+UFoQCkUGOyCBHZN/AqrwOkZlKCpjIIEdkd0qaNGpEBjkiM5YyLYkMckR2h5QJswqRQY7IbsQUux2RGUv5hiyR3YApdh8iu9LqwFKmWBWRYQEiuwJT7HuI7AsE9n1EdgE3+scgsjM6AkucYlVE9ikm2LGI7C9dgaVOsSoiwwJE9gFTTIPI/sd9mA6RVW9g6VOsisiYYAuMj6zThClWNTwyptgaYyPrDmzKFKsaGll3YNOMi8wlMJfjWGFUZJMurJMxkRFYnxGRuQbmelxHi49syoV0Fh8Z+hFZswmTNjqyCRdwB9GRwQORGUifuEQGOSKDHJGZSF6ZRAY5IoMckUGOyCBHZCaSv44dG1ny09puYiODDyIzkLwqq4gMCxAZ5IgMckTWLP1+rIrIsACRQY7IGk1YlVVEhgWIDHKRke3yueUux/ldkZHtZEJoRGYgPTQiM5EcGpEZSQ2NyCBHZGYSpxmRGUoLjchMJYVGZMZSQiMyYykfoBMZ5OIiS1kxSeIiS5GyKquIDAsQGeSIzFDSqqwiMixAZJAjMjNpq7KKyLAAkUGOyCAXFRkfKXmKigyeiMxM4jQmMsgR2SK3vP9Km2ZEttDU0IhsscQ3+l8hsgbXhpYyzYisyaTQiAxyRLaB3acZkW1i59BiItv5Ilxr13OMiQy+iGyBI9+N7TjNiAxyRNbongm34ycGRNbslmh2DKyKyJY44j5q18CqiMzCVwHtHFgVkdnYPaRLYiJzv0jXrMzPzsH9vK4RE1lVxgX5eA4J51MVFllVxoV5fnyKOI93cZFV+Ya249v6I0RGBi+xkTHNfMRGBh/RkblOs2miI3M1bWXGR8Y06xcfGfoRWZNJK3NEZKzMXiMiQ68xkTlOsykrc0xk6ENkkBsVGSuzx6jI0GNcZI7TLN24yKoIbbWRkWEtIoPc2MhYmeuMjQzrEBnkxkY24SWoi5/dB7Aaca03JjLi6jNiXRJYr/jICKxfdGQE5iHynoy4vMRNMgLzEzPJiMtXxCQjMG+WkV0bzcvbK4FtwG5dvkfzdzwfvzVBWHuxiuxSPIS1L5t1OTWiCd9rs4hsamBTtEdGYPlaIyOwGdonGfIRGeRaI3N/snr/72fcj9Od1XsyBwR1PCIrwlJrj+z58anlKZOw1mmPbCXC6jHi6fKIm3cCvZ9FZKoLyJOhB4vIFIjLR2RkBObFJrKjwiAwPzaRHYHAPEVEtuoGn4jvs31kXHh/W0dGYHvYOrLdTfkhITLIWUU25Sd7GqvIkInIIEdkkCMyyBEZ5Owi4wkzj11kyENkkLP8RZJzK5N/O2NPlpGdk3a/9vL2GndOn2FdQo7Imk24BSAyyBGZgfRpRmSQIzLIEZmJ5JVJZJDb6mWsgwkvT4/GJIMckUHu4XQ6dR8DwjHJIEdkkCMyyBEZ5IgMckQGuT8fjSbdsqBpYQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.axis('off')\n",
    "plt.imshow(annos[9710])\n",
    "plt.savefig('test.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we filter through the dataset to make sure that all images have 3 channels. Some images had only one channel, and that caused me a lot of grief when i tried to train the model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "bad_img_ids = []\n",
    "for i in range(len(imgs)):\n",
    "    if (len(imgs)-1 < i):\n",
    "        break\n",
    "    b = io.imread('images/%s'%(imgs[i]['file_name']))\n",
    "    if (len(b.shape) != 3):\n",
    "        del imgs[i]\n",
    "        del annos[i]\n",
    "        i-=1\n",
    "        bad_img_ids.append(img['id'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Training Data Generator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import sys\n",
    "import random\n",
    "\n",
    "import numpy as np\n",
    "import cv2\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "\n",
    "## Seeding \n",
    "seed = 2019\n",
    "random.seed = seed\n",
    "np.random.seed = seed\n",
    "tf.seed = seed"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we separate our data into train data and validation data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [],
   "source": [
    "val_size = 500 # This is around 5 percent of our total data\n",
    "\n",
    "train_imgs = imgs[val_size:]\n",
    "val_imgs = imgs[:val_size]\n",
    "\n",
    "train_annos = annos[val_size:]\n",
    "val_annos = annos[:val_size]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we create our own custom data generator because of the way we parsed the COCO dataset images."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [],
   "source": [
    "BATCH_SIZE = 8\n",
    "IMG_SHAPE = 128\n",
    "\n",
    "class DataGen(keras.utils.Sequence):\n",
    "    def __init__(self, imgs, annos, batch_size=8, image_size=128):\n",
    "        self.imgs = imgs\n",
    "        self.annos = annos\n",
    "        self.batch_size = batch_size\n",
    "        self.image_size = image_size\n",
    "        self.on_epoch_end()\n",
    "        \n",
    "    def __load__(self, index):\n",
    "#         print(imgs[index]['id'])\n",
    "        # Loading Images\n",
    "        currImg = io.imread('images/%s'%(self.imgs[index]['file_name']))\n",
    "        currMask = self.annos[index]\n",
    "        \n",
    "        # Resizing Images\n",
    "        currImg = cv2.resize(currImg, (self.image_size, self.image_size))\n",
    "        currMask = cv2.resize(currMask, (self.image_size, self.image_size))\n",
    "        \n",
    "        currImg = np.array(currImg)\n",
    "        currMask = np.array(currMask)\n",
    "        \n",
    "        #Normalizing\n",
    "        currImg = currImg/255.0\n",
    "        currMask=currMask/255.0\n",
    "        \n",
    "        return currImg, currMask, self.imgs[index]['id']\n",
    "    \n",
    "    def __getitem__(self, index):\n",
    "        if(index+1)*self.batch_size > len(self.imgs):\n",
    "            self.batch_size = len(self.imgs) - index*self.batch_size\n",
    "        \n",
    "        batch_indices = np.arange(index*self.batch_size , (index+1)*self.batch_size)\n",
    "        image = []\n",
    "        mask  = []\n",
    "        idds = []\n",
    "        \n",
    "        for ind in batch_indices:\n",
    "            _img, _mask, imgID = self.__load__(ind)\n",
    "            image.append(_img)\n",
    "            mask.append(_mask)\n",
    "            idds.append(imgID)\n",
    "        try:\n",
    "            image = np.array(image)\n",
    "        except:\n",
    "            for ia in idds:\n",
    "                print(ia)\n",
    "            for ia in image:\n",
    "                plt.axis('off')\n",
    "                plt.imshow(ia)\n",
    "                plt.show()\n",
    "        mask  = np.array(mask)\n",
    "        \n",
    "        return image, mask\n",
    "    \n",
    "    def on_epoch_end(self):\n",
    "        pass\n",
    "    \n",
    "    def __len__(self):\n",
    "        return int(np.ceil(len(self.imgs)/float(self.batch_size)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(8, 128, 128, 3) (8, 128, 128)\n"
     ]
    }
   ],
   "source": [
    "gen = DataGen(train_imgs, train_annos, batch_size=BATCH_SIZE, image_size=IMG_SHAPE)\n",
    "x, y = gen.__getitem__(0)\n",
    "print(x.shape, y.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The UNet Model\n",
    "Taken from https://github.com/nikhilroxtomar/UNet-Segmentation-in-Keras-TensorFlow"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "def down_block(x, filters, kernel_size=(3, 3), padding=\"same\", strides=1):\n",
    "    c = keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation=\"relu\")(x)\n",
    "    c = keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation=\"relu\")(c)\n",
    "    p = keras.layers.MaxPool2D((2, 2), (2, 2))(c)\n",
    "    return c, p\n",
    "\n",
    "def up_block(x, skip, filters, kernel_size=(3, 3), padding=\"same\", strides=1):\n",
    "    us = keras.layers.UpSampling2D((2, 2))(x)\n",
    "    concat = keras.layers.Concatenate()([us, skip])\n",
    "    c = keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation=\"relu\")(concat)\n",
    "    c = keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation=\"relu\")(c)\n",
    "    return c\n",
    "\n",
    "def bottleneck(x, filters, kernel_size=(3, 3), padding=\"same\", strides=1):\n",
    "    c = keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation=\"relu\")(x)\n",
    "    c = keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation=\"relu\")(c)\n",
    "    return c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "def UNet():\n",
    "    f = [16, 32, 64, 128, 256]\n",
    "    inputs = keras.layers.Input((IMG_SHAPE, IMG_SHAPE, 3))\n",
    "    \n",
    "    p0 = inputs\n",
    "    c1, p1 = down_block(p0, f[0]) #128 -> 64\n",
    "    c2, p2 = down_block(p1, f[1]) #64 -> 32\n",
    "    c3, p3 = down_block(p2, f[2]) #32 -> 16\n",
    "    c4, p4 = down_block(p3, f[3]) #16->8\n",
    "    \n",
    "    bn = bottleneck(p4, f[4])\n",
    "    \n",
    "    u1 = up_block(bn, c4, f[3]) #8 -> 16\n",
    "    u2 = up_block(u1, c3, f[2]) #16 -> 32\n",
    "    u3 = up_block(u2, c2, f[1]) #32 -> 64\n",
    "    u4 = up_block(u3, c1, f[0]) #64 -> 128\n",
    "    \n",
    "    outputs = keras.layers.Conv2D(1, (1, 1), padding=\"same\", activation=\"sigmoid\")(u4)\n",
    "    model = keras.models.Model(inputs, outputs)\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"model\"\n",
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            [(None, 128, 128, 3) 0                                            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d (Conv2D)                 (None, 128, 128, 16) 448         input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_1 (Conv2D)               (None, 128, 128, 16) 2320        conv2d[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d (MaxPooling2D)    (None, 64, 64, 16)   0           conv2d_1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_2 (Conv2D)               (None, 64, 64, 32)   4640        max_pooling2d[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_3 (Conv2D)               (None, 64, 64, 32)   9248        conv2d_2[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2D)  (None, 32, 32, 32)   0           conv2d_3[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_4 (Conv2D)               (None, 32, 32, 64)   18496       max_pooling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_5 (Conv2D)               (None, 32, 32, 64)   36928       conv2d_4[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_2 (MaxPooling2D)  (None, 16, 16, 64)   0           conv2d_5[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_6 (Conv2D)               (None, 16, 16, 128)  73856       max_pooling2d_2[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_7 (Conv2D)               (None, 16, 16, 128)  147584      conv2d_6[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_3 (MaxPooling2D)  (None, 8, 8, 128)    0           conv2d_7[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_8 (Conv2D)               (None, 8, 8, 256)    295168      max_pooling2d_3[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_9 (Conv2D)               (None, 8, 8, 256)    590080      conv2d_8[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d (UpSampling2D)    (None, 16, 16, 256)  0           conv2d_9[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "concatenate (Concatenate)       (None, 16, 16, 384)  0           up_sampling2d[0][0]              \n",
      "                                                                 conv2d_7[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_10 (Conv2D)              (None, 16, 16, 128)  442496      concatenate[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_11 (Conv2D)              (None, 16, 16, 128)  147584      conv2d_10[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_1 (UpSampling2D)  (None, 32, 32, 128)  0           conv2d_11[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_1 (Concatenate)     (None, 32, 32, 192)  0           up_sampling2d_1[0][0]            \n",
      "                                                                 conv2d_5[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_12 (Conv2D)              (None, 32, 32, 64)   110656      concatenate_1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_13 (Conv2D)              (None, 32, 32, 64)   36928       conv2d_12[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_2 (UpSampling2D)  (None, 64, 64, 64)   0           conv2d_13[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_2 (Concatenate)     (None, 64, 64, 96)   0           up_sampling2d_2[0][0]            \n",
      "                                                                 conv2d_3[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_14 (Conv2D)              (None, 64, 64, 32)   27680       concatenate_2[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_15 (Conv2D)              (None, 64, 64, 32)   9248        conv2d_14[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_3 (UpSampling2D)  (None, 128, 128, 32) 0           conv2d_15[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_3 (Concatenate)     (None, 128, 128, 48) 0           up_sampling2d_3[0][0]            \n",
      "                                                                 conv2d_1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_16 (Conv2D)              (None, 128, 128, 16) 6928        concatenate_3[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_17 (Conv2D)              (None, 128, 128, 16) 2320        conv2d_16[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_18 (Conv2D)              (None, 128, 128, 1)  17          conv2d_17[0][0]                  \n",
      "==================================================================================================\n",
      "Total params: 1,962,625\n",
      "Trainable params: 1,962,625\n",
      "Non-trainable params: 0\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model = UNet()\n",
    "model.compile(optimizer=\"adam\", loss=\"binary_crossentropy\", metrics=[\"acc\"])\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:sample_weight modes were coerced from\n",
      "  ...\n",
      "    to  \n",
      "  ['...']\n",
      "WARNING:tensorflow:sample_weight modes were coerced from\n",
      "  ...\n",
      "    to  \n",
      "  ['...']\n",
      "Train for 1538 steps, validate for 62 steps\n",
      "1538/1538 [==============================] - 767s 499ms/step - loss: 0.0160 - acc: 0.7352 - val_loss: 0.0156 - val_acc: 0.7428\n"
     ]
    }
   ],
   "source": [
    "train_gen = DataGen(train_imgs, train_annos, batch_size=BATCH_SIZE, image_size=IMG_SHAPE)\n",
    "val_gen = DataGen(val_imgs, val_annos, batch_size=BATCH_SIZE, image_size=IMG_SHAPE)\n",
    "\n",
    "train_steps = len(train_imgs)//BATCH_SIZE\n",
    "val_steps = len(val_imgs)//BATCH_SIZE\n",
    "\n",
    "epochs = 1\n",
    "history = model.fit(train_gen, validation_data=val_gen, steps_per_epoch=train_steps, validation_steps=val_steps, epochs=epochs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we can see how the model predicts an image:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.save_weights(\"BackgroundRemove.h5\")\n",
    "\n",
    "x,y = val_gen.__getitem__(8)\n",
    "result = model.predict(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "image_size=IMG_SHAPE\n",
    "fig = plt.figure()\n",
    "fig.subplots_adjust(hspace=0.4, wspace=0.4)\n",
    "\n",
    "ax = fig.add_subplot(1, 2, 1)\n",
    "ax.imshow(np.reshape(y[0]*255, (image_size, image_size)), cmap=\"gray\")\n",
    "\n",
    "ax = fig.add_subplot(1, 2, 2)\n",
    "ax.imshow(np.reshape(result[0]*255, (image_size, image_size)), cmap=\"gray\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
